<!-- 本软件采用UniApp跨端框架，以Vue3为基础技术栈，开发时间2024-5-21 -->

<script setup>
	import { ref, inject } from "vue";
	import { onLaunch, onShow, onHide } from "@dcloudio/uni-app";
	const app = inject('app');
	
	// 最后一次将App切到后台的时间
	const switchBackTime = ref(null);
	
	onLaunch(() => {
		// #ifdef APP-PLUS
		
		// 安卓 && 已同意隐私协议  或者  苹果
		if ((plus.runtime.isAgreePrivacy() && app.config.osName === 2) || app.config.osName === 1) {
			app.ascribe.startApp();
			uni.preLogin({ provider: "univerify" });	// 预取号
		}
		
		// 首次进入，假如网络存在问题则开始监听网络变化，若网络变化为可链接，则直接重启App
		uni.getNetworkType({
			success(res) {
				if (res.networkType == "none") {
					uni.onNetworkStatusChange(function (res) {
						if (res.isConnected) {
							plus.runtime.restart();
						}
					});
				}
			}
		});
		
		// 设置安卓的底部安全区域颜色
		app.util.setSafeAreaBackgroundColor();
		
		// 删除之前没用的缓存目录
		app.ffmpeg.deleteTemp();
		// #endif
		
		// 监听tabbar中间按钮的点击
		uni.onTabBarMidButtonTap((e) => {
			app.util.openUrl({ url: "/pages/create/creation", animationType: "slide-in-bottom" });
		});
	});
	
	onShow(() => {
		// #ifdef APP-PLUS
		
		// 如果用户切换到后台时间太长的话，热启动App时候iOS会出现bug，因此这里重启一下。我这里设置的120秒 2分钟
		if(switchBackTime.value && app.config.osName === 1){
			let nowTime = new Date().getTime();
			if((nowTime - switchBackTime.value) >= 1000 * 120){
				let notRestartPage = [];
				if(notRestartPage.indexOf(app.util.getRoute()) === -1){
					plus.runtime.restart();
				}
			}
		}
		
		// #endif
	});
	
	onHide(() => {
		switchBackTime.value = new Date().getTime();
	});
</script>

<style lang="scss">
	@import "/static/css/font.css";
	@import "/static/css/common.scss";
</style>